package com.loong.mapper;

import com.loong.pojo.Cart;
import org.apache.ibatis.annotations.*;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface CartMapper {

    /**
     * 添加购物车
     * @param cart 购物车对象
     */
    @Update("UPDATE cart SET cnum = #{cart.cnum}, cprice = #{cart.cprice} WHERE cid = #{cart.cid}")
    void updateCart(@Param("cart") Cart cart);

    /**
     * 添加购物车
     * @param cart 购物车对象
     */
    @Insert("INSERT INTO cart (uid, pid, cnum, cprice) VALUES (#{cart.uid}, #{cart.pid}, #{cart.cnum}, #{cart.cprice})")
    void insertCart(@Param("cart") Cart cart);

    /**
     * 查询购物车列表
     * @param uid 用户id
     * @return 购物车列表
     */

    List<Cart> selectCartsByUid(Integer uid);

    /**
     * 查询购物车数量
     * @param uid 用户id
     * @param pid 商品id
     * @return 购物车数量
     */

    Cart hasCart(@Param("uid") int uid, @Param("pid") int pid);

    /**
     * `     * 删除购物车
     * @param cid     购物车id
     */
    @Delete("DELETE FROM cart WHERE cid = #{cid}")
    void deleteCartByCid(String cid);

    /**
     * 更新购物车
     * @param cprice  价格
     * @param cnum    数量
     * @param cid     购物车id
     */
    @Update("UPDATE cart SET cprice = #{cprice}, cnum = #{cnum} WHERE cid = #{cid}")
    void updateCartByCid(@Param("cprice") BigDecimal cprice, @Param("cnum") int cnum,@Param("cid") String cid);

    /**
     * 删除购物车
     * @param uid 用户id
     */
    @Delete("DELETE FROM cart WHERE uid = #{uid}")
    void deleteCartByUid(int uid);
}
